Modern computing devices such as laptops, networks, desktops, and servers include processors and other hardware components that process data and perform a variety of tasks during the operation of the computing device. However, at any given time during operation of the computing device, one or more of the hardware components may not be in use. Rather than supplying full power to an unused hardware component, the component may be placed into a low-power state to reduce the amount of power consumed by the component when not in use. Thereafter, the computing device may “wake” the hardware component from the low-power state to perform some task.
The processors of such computing devices typically support multiple different low-power states. For example, a processor may have a full-power state in which the processor is actively executing instructions. Upon executing the instructions, the processor may transition to one of the multiple low-power states depending on, for example, the current load on the computing device. Although a “deeper” low-power state saves more power than a “shallow” low-power state, the transitions between a deeper low-power state and the full-power state involve greater latency and power consumption to execute the power state transition. Accordingly, the processor and/or the operation system of the computing device balances various factors in determining which low-power state in which to place an inactive processor.